#ifndef __PACKAGE_INL__
#define __PACKAGE_INL__

template< int CAPACITY >
inline bool BufferToBufferPtr( const BUFFER_PTR& src, BUFFER<CAPACITY>& dst )
{
	if( NULL == src.pBuffer )
	{
		return false;
	}

	if( src.nDataLen > CAPACITY )
	{
		return false;
	}

	::memcpy( dst.btBuffer, src.pBuffer, src.nDataLen );
	return true;
}

inline BUFFER_PTR BufferPtrClone( const BUFFER_PTR& src )
{
	BUFFER_PTR dst = {0};
	if( NULL == src.pBuffer )
	{
		return dst;
	}

	dst.nCapacity = src.nDataLen;
	dst.pBuffer = new BYTE[dst.nCapacity];

	::memcpy( dst.pBuffer, src.pBuffer, src.nDataLen );
	return dst;
}

#endif